/**   
 * @Title: StringUtils.java 
 * @Package com.git.gather 
 * @Description: 字符串相关
 * @author fanqinghui100@126.com   
 * @date 2014年6月2日 下午8:19:46 
 * @version V1.0   
 */
package com.git.gather;

import java.util.List;

/**
 * @author fanqinghui100@126.com
 */
public class StringUtils extends org.apache.commons.lang3.StringUtils {

	/**
	* 首字母小写 
	* @return String
	* @throws
	 */
	public static String firstToLowerCase(String str) {
		if (str != null && str.length() != 0) {
			return Character.toLowerCase(str.charAt(0)) + str.substring(1);
		}
		return str;
	}

	/**
	 * 首字母大些
	* @return String
	* @throws
	 */
	public static String firstToUpperCase(String str) {
		if (str != null && str.length() != 0) {
			return Character.toUpperCase(str.charAt(0)) + str.substring(1);
		}
		return str;
	}

	/**
	 * 将页面或PO字段转换成全大写并以下划线分隔的数据库字段
	 * @param param
	 *            例如： custName
	 * @return 换换后字符串 CUST_NAME
	 */
	public static String capitalConvertUnderline(String dtoName) {
		StringBuffer sub = null;
		if (isNotEmpty(dtoName)) {
			char[] ch = dtoName.toCharArray();
			sub = new StringBuffer();
			String temp = null; //
			for (int i = 0; i < dtoName.length(); i++) {
				temp = String.valueOf(ch[i]);
				if (StringUtils.isNotEmpty(temp) && Character.isUpperCase(ch[i])) {
					sub.append("_" + ch[i]);
				} else {
					sub.append(ch[i]);
				}
			}
			return sub.toString().toUpperCase();
		}
		return null;
	}

	/**
	 * 判断字符串是否是null或者""
	 * @param str
	 * @return
	 */
	public static boolean isEmpty(String str){
		if (str == null) {
			return true;
		} else if (str.length() == 0) {
			return true;
		} else {
			return false;
		}
	}

	/**
	 * 判断字符串是否不为空
	 * @param str
	 * @return
	 */
	public static boolean isNotEmpty(String str) {
		return !isEmpty(str);
	}

	/**
	 * 用分隔符expr 分割str字符串，返回string[]数组
	 * @param str：要分割的字符串
	 * @param expr ：分隔符
	 * @return String[]
	 */
	public static String[] stringToArray(String str, String expr) {
		return str.split(expr);
	}

	/**
	 * 将字符串数组以分隔符方式返回字符串 
	 * @param arr
	 * @param expr
	 * @return
	 */
	public static String arrayToString(String[] arr, String expr) {
		String strInfo = "";
		if (arr != null && arr.length > 0) {
			StringBuffer sf = new StringBuffer();
			for (String str : arr) {
				sf.append(str);
				sf.append(expr);
			}
			strInfo = sf.substring(0, sf.length() - 1);
		}
		return strInfo;
	}

	/**
	 *将list集合里字符串用expr分隔符连接，返回字符串 
	 * @param arr
	 * @param expr
	 * @return
	 */
	public static String listToString(List<String> list, String expr) {
		String strInfo = "";
		if (list != null && list.size() > 0) {
			StringBuffer sf = new StringBuffer();
			for (String str : list) {
				sf.append(str);
				sf.append(expr);
			}
			strInfo = sf.substring(0, sf.length() - 1);
		}
		return strInfo;
	}

}
